﻿/* Created on 2017.3.8
 *
 * @author: jia
 */

#pragma once
#include <string>
#include "kbedefine.h"


class KBEConfig
{
public:
    KBEConfig();
    ~KBEConfig();

    bool loadJsonStr(const char* text);
public:
    // 登录ip和端口
    std::string ip = "127.0.0.1";
    int port = 20013;

    // 客户端类型
    // Reference: http://www.kbengine.org/docs/programming/clientsdkprogramming.html, client types
    CLIENT_TYPE clientType = CLIENT_TYPE::CLIENT_TYPE_MINI;

    // 持久化插件信息， 例如：从服务端导入的协议可以持久化到本地，下次登录版本不发生改变
    // 可以直接从本地加载来提供登录速度
    std::string persistentDataPath = "";

    // Allow synchronization role position information to the server
    // 是否开启自动同步玩家信息到服务端，信息包括位置与方向
    // 非高实时类游戏不需要开放这个选项
    bool syncPlayer = true;

    // 是否使用别名机制
    // 这个参数的选择必须与kbengine_defs.xml::cellapp/aliasEntityID的参数保持一致
    bool useAliasEntityID = true;

    // 在Entity初始化时是否触发属性的set_*事件(callPropertysSetMethods)
    bool isOnInitCallPropertysSetMethods = true;

    // 发送缓冲大小
    int SEND_BUFFER_MAX = 1460;

    // 接收缓冲区大小
    int RECV_BUFFER_MAX = 1460;

    // 是否多线程启动
    bool isMultiThreads = false;

    // 只在多线程模式启用
    // 线程主循环处理频率
    int threadUpdateHZ = 10;
private:
};
